1. Field of the Invention
This invention relates to the display of graphics on rasterized displays such as video monitors, LCD displays and printed pages and, in particular, relates to the conversion of vector or stroke graphic inputs for raster displays.
2. Description of the Related Art
Symbol graphics are conventionally displayed in either a raster scan or vector format on video displays or monitors dedicated to either raster scanned or vector images. Raster displays, such as those on CRT monitors typically used with desktop computers, describe a graphic image by modulating beam intensity while scanning the total display surface in a fixed pattern. In contrast, vector displays move in a random access manner only through those portions of the display surface required to describe the image. Symbols are graphically presented by using a stroke generation system to drive an intensified CRT beam in X and/or Y directions to create lines that may be at any angle and in any direction.
A stroke generation system which can provide high quality symbology graphics in a vector display must have several properties. First, for drawn lines to have uniform intensity, the beam intensity must remain constant, and linear motion in all directions must be at a constant rate. Secondly, due to a time lag in the deflections creating beam motion, the time at which the beam intensity is turned on at the start of a line must be delayed relative to the deflections. Thirdly, since deflections slow down as they approach a constant value, a settling time with the deflection inputs at their final value is required to complete drawing a line-end. Without this "stretch" of intensity at the end of each line, resultant lines will appear shortened and have gaps if chained together.
Analog stroke graphics are a form of vector graphics characterized instantaneously by an X Position, a Y Position, and a Stroke Intensity ("Intensity" or "Bright-Up" (BU)) of the generating beam. As shown in FIG. 1, conventional analog stroke graphics use straight-line vectors and/or arcs. Exemplary straight-line vector V1 has an Intensity (indicated by a bold-face line), a start point V1 Start, an end point V1 End, and a constant slope V1 Slope. Straight-line V2 has a start point V2 Start coinciding with V1 End. Straight-line V3 is unconnected to vector V2. Exemplary arc A1 has an Intensity, a start point A1 Start, an end point A1 End, an initial slope A1 Initial Slope, a plurality of successive gradual changes in slope A1 Slope 1, A1 Slope 2, . . . , (not shown) and an end slope A1 End Slope. An arc can be considered to be a series of small chained vectors each having a slightly different slope. The start point of a line is distinguished by changing the X and Y values with the Intensity at zero (referred to as "slewing"), cutting off the X, Y driver signals and waiting a predetermined interval (referred to as "settling"), and then increasing the Intensity from zero to a positive value. Alternatively, a start point is distinguished by using the end point values of the previous line. An end point is recognized by the Intensity changing from a positive value to zero, or by a positive Intensity with X and Y stationary (indicating settling or that a point is being drawn).
Analog stroke graphics are generated by CRT beam driver signals produced by analog stroke generation systems which generally have the following characteristics:
1) X Position and Y Position are mostly monotonic, while Stroke Intensity may have multiple values but is constant for a given vector. Stroke Intensity may simply indicate the presence or absence of a signal. PA1 2) X and Y are in time synchronization with each other, while Intensity may not be. PA1 3) Beam motion, described by X and Y, is not in a fixed pattern. PA1 4) Symbology is described by vectors and/or arcs drawn in any direction and at any angle. PA1 5) Vectors have a constant slope while arcs have a slowly varying slope. PA1 6) Beam motion is at a constant rate along the direction of a line. PA1 7) Lines may start anywhere on the display surface and are distinguished by the Intensity going from zero to a positive value, or by (X, Y) motion with positive Intensity after detection of an end-of-line condition. PA1 8) A line-end is distinguished by the Intensity going to zero or by a settling time with a non-zero Intensity. PA1 9) The number of times that the beam transits any given point on the display surface can vary from none to many times. PA1 1) The sequence of randomly located analog symbols must be digitized and organized into a single frame of information. PA1 2) Digitized lines must meet the Bresenham criteria. PA1 3) Unprocessed digitized analog stroke data will almost always produce output that violates the Bresenham criteria, even in the absence of noise. PA1 4) Since the analog X and Y signals are typically noisy, the sequence of intended locations along a line will often be somewhat ambiguous. Consequently, the width of rasterized lines will appear to vary, and their start and end points will be difficult to define. PA1 5) The (X, Y) signals must be resynchronized with the Intensity signal, i.e., compensation must be provided for Intensity stretch and deflection lag. PA1 6) Stroke writing rates are constant along a line for a given application, but will vary from system to system. PA1 7) Sampling must be fast enough in the presence of noise to be able to consistently determine probable intended location, and for static symbology must also be consistent from frame to frame. PA1 8) The number of samples from one FB pixel location to the next is not constant because the distance between illuminated pixels varies with the angle of the line being drawn. PA1 (9) Hardware (HW) and software (SW) operation of stroke generators will vary according to the host platform used.
Since raster displays describe graphic images by scanning the total display surface in a fixed pattern, a sequence of randomly located symbols must first be organized into a full frame image before being transmitted to the display. This is usually accomplished in a raster graphics generator by writing an image into an intermediate Frame Buffer (FB) and then transmitting the buffer contents to the display in the required fixed pattern. A conventional FB is organized into fixed pixel locations in an (X, Y) grid with intensity and/or color values assigned to each pixel.
Raster displays require a digitized version of the analog stroke information which if utilized in unprocessed form does not produce acceptable quality graphics because the output violates certain basic norms of raster scanned drawings. In particular, line drawings obtained by simple A/D conversion of stroked vectors violate the Bresenham criteria which specify the rules to be obeyed by a rasterized line produced by the Bresenham line drawing algorithm, which is the generally accepted method for drawing a line on a raster grid. These criteria require that an X-major (slope less than or equal to .+-.45 degrees with respect to the X-axis) line of unit width must intensify exactly one pixel (pel) per column of the grid, while a Y-major (slope less than or equal to .+-.45 degrees with respect to the Y-axis) line of unit width must intensify exactly one pixel per row of the grid.
Problems to be resolved in converting analog stroke graphics into raster scanned graphics include:
The simplest method for stroke-to-raster conversion is to digitize analog symbols using an analog-to-digital (A/D) converter, and write the digitized data directly to a raster display Frame Buffer. As noted supra, this approach almost always produces data violating the Bresenham criteria, even in the absence of noise, resulting in a poor quality raster display. An improved conventional method samples over a 2 pel.times.2 pel ("2.times.2") window to produce anti-aliased raster output. This approach, which requires sophisticated hardware, produces marginal quality output and in particular makes small characters hard to read.
What is needed is a technique for analog stroke-to-raster conversion which produces real-time output in accordance with accepted standards of high quality raster graphics, in particular the Bresenham criteria. The technique should accommodate tailoring to a variety of stroke generators by implementing straightforward software modifications. The technique should also be robust in the presence of significant noise contamination of stroke data. Moreover, the technique should offer a practical implementation using off-the-shelf devices such as adders, multiplexers and registers, and should be readily scaleable with display surface area.